home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / include / gemf.h < prev    next >
C/C++ Source or Header  |  1993-11-20  |  2KB  |  85 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. //  GEMform
  4. //
  5. //  A GEMform interacts with the user through a GEM form (or dialog).
  6. //
  7. //  This file is Copyright 1992,1993 by Warwick W. Allison.
  8. //  This file is part of the gem++ library.
  9. //  You are free to copy and modify these sources, provided you acknowledge
  10. //  the origin by retaining this notice, and adhere to the conditions
  11. //  described in the file COPYING.LIB.
  12. //
  13. /////////////////////////////////////////////////////////////////////////////
  14.  
  15. #ifndef GEMf_h
  16. #define GEMf_h
  17.  
  18. #include <gemfb.h>
  19. #include <gemrawo.h>
  20. #include <bool.h>
  21.  
  22. class GEMobject;
  23. class GEMrsc;
  24. class GEMevent;
  25. class GRect;
  26.  
  27. class GEMform
  28. {
  29. public:
  30.     GEMform(const GEMrsc& in, int RSCindex);
  31.     GEMform(const GEMform&);
  32.     virtual ~GEMform();
  33.  
  34.     int Do(); // Centred
  35.     virtual int Do(int x, int y);
  36.  
  37.     bool Zooms(bool b);
  38.     bool Flight(bool b);
  39.     void Fly(bool opaque=TRUE);
  40.  
  41.     virtual void RedrawObject(int RSCindex);
  42.     virtual void RedrawObject(int RSCindex,int Cx,int Cy,int Cw,int Ch); // Clipped
  43.     void RedrawObjectFromRoot(int RSCindex);
  44.  
  45.     int Parent(int RSCindex) const;
  46.  
  47.     // See GEMrawobject for conversion function to GEMobject*
  48.     GEMrawobject& Object(int RSCindex) const { return Obj[RSCindex]; }
  49.     GEMrawobject& operator[](int RSCindex) const { return Object(RSCindex); }
  50.  
  51.     virtual void AlignObject(int RSCindex, int xmult=8, int ymult=1);
  52.  
  53.     const int SearchDown=-1;
  54.     const int SkipSubtree=-2;
  55.  
  56.     int Map(int Do(GEMrawobject*, int), bool skiphidden=TRUE, int RSCfrom=0, int RSCto=-1);
  57.  
  58.     virtual GEMfeedback DoItem(int item, const GEMevent& e);
  59.  
  60.     int Index() const { return myindex; }
  61.  
  62.     virtual bool IsOpen();
  63.  
  64.     // Should always be called to completion.
  65.     // GRects invalid afer next call.
  66.     virtual GRect* FirstClip(int RSCobject);
  67.     virtual GRect* NextClip(GRect* prev);
  68.  
  69. private:
  70.     int myindex;
  71.     void* flybuffer;
  72.     int vdihandle;
  73.     int open;
  74.  
  75. protected:
  76.     bool ZoomOn;
  77.     bool flight;
  78.     GEMrawobject *Obj;
  79.     virtual int FormDo();
  80.     int xoffset,yoffset,xmult,ymult;
  81. };
  82. inline    bool GEMform::Zooms(bool b)    { bool t=b; ZoomOn=b; return t; }
  83.  
  84. #endif
  85.